using UnityEngine;
using UnityEngine.UI;

namespace CGF
{
    public static class TextHelper
    {
        //可以同一帧内(赋值文本后且RectTransform刷新前)预先读取未来文本赋值后的RectTransform尺寸
        public static float GetTextWidth(Text text)
        {
            //Text要先赋值
            var settings = text.GetGenerationSettings(text.rectTransform.rect.size);
            return text.cachedTextGenerator.GetPreferredWidth(text.text, settings) * 750f / (float)Screen.width;
            
            //750是Canvas Scaler的Reference Resolution的宽度，如果横屏app则改成以高度为准，看Match用的是什么就以什么为准
            //return text.cachedTextGenerator.GetPreferredWidth(text.text, settings) * 1500f / (float)Screen.height;
        }
        
        //可以同一帧内(赋值文本后且RectTransform刷新前)预先读取未来文本赋值后的RectTransform尺寸
        public static float GetTextHeight(Text text)
        {
            //Text要先赋值
            var settings = text.GetGenerationSettings(text.rectTransform.rect.size);
            return text.cachedTextGenerator.GetPreferredHeight(text.text, settings) * 750f / (float)Screen.width;
            
            //750是Canvas Scaler的Reference Resolution的宽度，如果横屏app则改成以高度为准，看Match用的是什么就以什么为准
            //return text.cachedTextGenerator.GetPreferredHeight(text.text, settings) * 1500f / (float)Screen.height;
        }

    }
}